Import Dataset and create working dataset:
#install.packages("plotly")
library(plotly)
library(reshape2)
library(tidyverse)
games <- read.csv("../../data/vgsales.csv")
game_melt <- melt(data=games,id.vars = c("Rank","Name","Platform","Year","Genre","Publisher"),measure.vars=c("NA_Sales","EU_Sales","JP_Sales","Other_Sales","Global_Sales"))
game_melt$Year <- as.integer(game_melt$Year)
NAs introduced by coercion
colnames(game_melt)[7] <- "Region"
colnames(game_melt)[8] <- "Copies Sold"
head(game_melt)
seq(1970,2017,step=5)
In seq.default(1970, 2017, step = 5) :
extra argument 㤼㸱step㤼㸲 will be disregarded
[1] 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982
[14] 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995
[27] 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008
[40] 2009 2010 2011 2012 2013 2014 2015 2016 2017
Graph time baby!
#Number of Copies Sold
graph1 <- game_melt %>%
filter(Region == "NA_Sales") %>%
group_by(Region,Year,Genre) %>%
summarise("Copies Sold" = sum(`Copies Sold`)) %>%
ggplot() +
aes(x=Year,
y=`Copies Sold`,
fill = Genre) +
geom_bar(stat="identity")+
theme(axis.text.x = element_text(angle = 90, hjust=0.95, vjust=0.2)) +
ylab("Number of Copies Sold (in millions)")
`summarise()` regrouping output by 'Region', 'Year' (override with `.groups` argument)
ggplotly(graph1)
Removed 12 rows containing missing values (position_stack).
#Number Releases
graph2 <- game_melt %>%
filter(Region == "NA_Sales") %>%
group_by(Region,Year,Genre) %>%
count(Year,Genre) %>%
rename(`Number of Releases`="n")%>%
ggplot() +
aes(x=Year,
y=`Number of Releases`,
fill = Genre) +
geom_bar(stat="identity")+
theme(axis.text.x = element_text(angle = 90, hjust=0.95, vjust=0.2))+
ylab("Number of Games Released")
ggplotly(graph2)
```r
#Number of Platforms, Genres and Publishers with games > 100 copies sold
graph3 <- game_melt %>%
filter(Region == \JP_Sales\) %>%
group_by(Year)%>%
melt(id.vars=c(\Year\),measure.vars=c(\Genre\,\Platform\,\Publisher\)) %>%
rename(Category='variable') %>%
group_by(Year,Category) %>%
unique() %>%
count(Year,Category) %>%
rename(`Counts of Genres, Publishers and Platforms`= n) %>%
ggplot() +
aes(x=Year,
y=`Counts of Genres, Publishers and Platforms`,
fill = Category) +
geom_bar(stat=\identity\)+
theme(axis.text.x = element_text(angle = 90, hjust=0.95, vjust=0.2))+
ylab(\Counts of Genres
testfxc <-function(reg,plat,gen,pub,years) {
# Input: List of Regions, Platforms, Genres, Publishers, Min and Max Year
# Output: Graph
#
# Create subset based on filters
# Pass to graph
# Output graph
filter_region = reg
if (plat != "all"){
filter_plat = plat
} else {
filter_plat = unique(game_melt$Platform)
}
if (gen != "all"){
filter_gen = gen
} else {
filter_gen = unique(game_melt$Genre)
}
if (pub != "all"){
filter_pub = pub
} else {
filter_pub = unique(game_melt$Publisher)
}
min_year = years[1]
max_year = years[2]
graph1 <- game_melt[,2:8] %>%
subset(Region %in% filter_region, Platform %in% filter_plat, Genre %in% filter_gen, Publisher %in% filter_pub, Year >= min_year | Year <= max_year) %>%
group_by(Region,Year,Genre) %>%
summarise("Copies Sold" = sum(`Copies Sold`)) %>%
ggplot() +
aes(x=Year,
y=`Copies Sold`,
fill = Genre) +
geom_bar(stat="identity")+
theme(axis.text.x = element_text(angle = 90, hjust=0.95, vjust=0.2)) +
ylab("Number of Copies Sold (in millions)")
ggplotly(graph1)
}
filter_region = list("JP_Sales")
filter_plat = unique(game_melt$Platform)
filter_gen = unique(game_melt$Genre)
filter_pub = unique(game_melt$Publisher)
min_year = 1980
max_year = 2017
graph1 <- game_melt %>%
subset(Region %in% filter_region & Platform %in% filter_plat & Genre %in% filter_gen & Publisher %in% filter_pub & Year >= min_year & Year <= max_year) %>%
group_by(Year,Genre) %>%
summarise("Copies Sold" = sum(`Copies Sold`)) %>%
ggplot() +
aes(x=Year,
y=`Copies Sold`,
fill = Genre) +
geom_bar(stat="identity")+
theme(axis.text.x = element_text(angle = 90, hjust=0.95, vjust=0.2)) +
ylab("Number of Copies Sold (in millions)")
`summarise()` regrouping output by 'Year' (override with `.groups` argument)
ggplotly(graph1)
}
Error: unexpected '}' in "}"
game_melt$Year > 2000
[1] TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE
[25] TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE
[49] TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE
[73] TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE
[97] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE
[121] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE
[145] TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE
[169] TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE NA TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE
[193] TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE
[217] TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE
[241] TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE
[265] TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE TRUE
[289] TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
[313] FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE
[337] TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE
[361] TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE NA TRUE TRUE TRUE TRUE TRUE TRUE
[385] TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE FALSE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[409] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE NA
[433] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE
[457] TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE NA TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
[481] TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE
[505] FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE
[529] TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE TRUE TRUE TRUE
[553] TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE
[577] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[601] TRUE TRUE FALSE TRUE TRUE TRUE TRUE NA TRUE FALSE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE
[625] NA TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE FALSE FALSE
[649] FALSE NA TRUE TRUE NA FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE
[673] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE TRUE
[697] TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE NA TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE
[721] TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE
[745] FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE
[769] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE NA TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE
[793] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[817] TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE
[841] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[865] FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE
[889] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[913] TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE
[937] TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE
[961] TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE
[985] FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[ reached getOption("max.print") -- omitted 81985 entries ]